#pragma once

#include "Array.hpp"

#ifndef COORD_NAME
#define COORD_NAME
#define X 0
#define Y 1
#define Z 2
#endif

class PointInputDevice
{
public:
  // ************************************
  // Method:  PointInputDevice::get_point_input
  // Usage:   Get position user inputs, stored in 'pointCoord'
  // Access:  virtual public 
  // Returns: (bool) true if the position exists
  // ************************************
  virtual bool get_point_input (OUT Array< float >& pointCoord) = 0;
  // ************************************
  // Method:  PointInputDevice::get_command_input
  // Usage:   Get command user inputs
  // Access:  virtual public 
  // Returns: (int) the actual meaning defines in subclass
  // ************************************
  virtual int get_command_input () = 0;
};

